<?php

class CidadeDAO {

    public static function inserir(Cidade $cidade) {
        $con = new bd();
        try {
            $con->beginTransaction();
            $stmt = $con->prepare("INSERT INTO `cidade`(`nome`,`estado`)VALUES(?,?);");
            $dados = Array($cidade->getNome(), $cidade->getEstado());
            $stmt->execute($dados);
            $id = $con->lastInsertId();
            $con->ocorreramErros($stmt);
            $cidade->setIdCidade($id);
            $con->commit();
        } catch (Exception $ex) {
            $con->rollBack();
        }
    }

    public function getById($id) {
        $con = new bd();
        $stmt = $con->prepare("SELECT `cidade`.`idCidade`,`cidade`.`nome`,`cidade`.`estado`
            FROM `cidade` WHERE `cidade`.`idCidade` = ?;");
        $stmt->execute(Array($id));
        $con->ocorreramErros($stmt);

        $r = $stmt->fetch();
        return new Cidade($r[0], $r[1], $r[2]);
    }

    public function listar() {
        $con = new bd();
        $stmt = $con->prepare("SELECT `cidade`.`idCidade`,`cidade`.`nome`,`cidade`.`estado`
            FROM `cidade`;");
        $stmt->execute();
        $con->ocorreramErros($stmt);

        $cidades = Array();
        while ($r = $stmt->fetch()) {
            $cidades[] = new Cidade($r[0], $r[1], $r[2]);
        }
        return $cidades;
    }

}
?>
